﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Caching;
using System.Web.Mvc;
//using www.SService;

namespace www.Controllers
{
    public class ContactControllers : Controller
    {
        
        private readonly ObjectCache _cache = MemoryCache.Default;
        //private readonly ServiceClient _service1 = new ServiceClient();
        //private readonly Utility _utility=new Utility();
        ////
        //// GET: /Contact/
        //[HttpGet]
        //public ActionResult Index()
        //{
        //    try
        //    {
        //        if (_cache["Contact"] == null)
        //        {

        //            var lData = _service1.GetContactDataContracts();
        //            if (lData.Any())
        //            {
        //                var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(27) };
        //                _cache.Set("Contact", lData, policy);
        //                ViewData["Data"] = lData.Where(p => p.Type == 1).ToList();
        //            }
        //        }
        //        else
        //        {
        //            var lData = (List<RelaxContactDataContract>)_cache["Contact"];
        //            ViewData["Data"] = lData.Where(p => p.Type == 1).ToList();

        //        }
        //        LoadType();

        //        return View();
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }
        //}
        //[HttpPost]
        //public ActionResult Index(FormCollection collection)
        //{
        //    try
        //    {
        //        var type = collection["Type"];
        //        LoadType(Convert.ToInt32(type));

        //        if (_cache["Contact"] != null)
        //        {
        //            var lReturn =
        //                ((List<RelaxContactDataContract>)_cache["Contact"]).Where(
        //                    p => p.Type == Convert.ToInt32(type)).ToList();

        //            ViewData["Data"] = lReturn;
        //        }
        //        else
        //        {
        //            var lData = _service1.GetContactDataContracts();
        //            if (lData.Any())
        //            {
        //                var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(27) };
        //                _cache.Set("Contact", lData, policy);
        //                ViewData["Data"] = lData.Where(p => p.Type == Convert.ToInt32(type)).ToList();
        //            }
        //        }
        //        return View();
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }
        //}

        //private void LoadType(int id = 0)
        //{
        //    if (id == 0)
        //    {
        //        var listItemsList = new List<SelectListItem>
        //           {
        //               new SelectListItem {Text = "Thông tin liên lạc nội bộ", Value = "1", Selected = true},
        //               new SelectListItem {Text = "Thông tin liên lạc", Value = "2"}
        //           };
        //        ViewBag.Type = listItemsList;

        //    }
        //    else
        //    {
        //        var listItemsList = new List<SelectListItem>
        //       {
        //           new SelectListItem {Text = "Thông tin liên lạc nội bộ", Value = "1", Selected = (1 == id)},
        //           new SelectListItem {Text = "Thông tin liên lạc", Value = "2", Selected = (2 == id)}
        //       };
        //        ViewBag.Type = listItemsList;
        //    }
        //}

       
        //[HttpGet]
        //public ActionResult Add()
        //{
        //    return View();
        //}

        //[HttpPost]
        //public ActionResult Add(FormCollection collection)
        //{
        //    try
        //    {
        //        var name = collection["txtName"];
        //        if (string.IsNullOrEmpty(name))
        //        {
        //            Response.Write("<script>alert('Tên không được trống');</script>");
        //            return View();
        //        }
               
        //        var contact = new RelaxContactDataContract
        //        {
        //            Name = name,
        //            Address = collection["txtAddress"],
        //            Tel = collection["txtsdt"],
        //            Email = collection["txtEmail"],
        //            Type = 1,
        //            Active = collection["chkActive"].Split(',').Length > 1 ? 1 : 0,
        //            Date = DateTime.Now
        //        };
        //        var adId = _service1.AddContact(contact);
        //        if (adId <= 0) return RedirectToAction("Add", "Contact");

        //        contact.Id = adId;
        //        var lData = (List<RelaxContactDataContract>)_cache["Contact"];
        //        if (lData == null)
        //            lData = new List<RelaxContactDataContract> { contact };
        //        else
        //            lData.Add(contact);

        //        _cache["Contact"] = lData;

        //        return RedirectToAction("Index", "Contact");
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return View();
        //    }
        //}

        //[HttpGet]
        //public ActionResult Edit(int id = 0)
        //{
        //    try
        //    {
        //        var lData = (List<RelaxContactDataContract>)_cache["Contact"];
        //        var first = lData.FirstOrDefault(p => p.Id == id);
        //        if (first == null)
        //            return HttpNotFound();

        //        return View(first);
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Contact");
        //    }
        //}

        //[HttpPost]
        //public ActionResult Edit(FormCollection collection)
        //{
        //    try
        //    {
        //        var name = collection["txtName"];
        //        if (string.IsNullOrEmpty(name))
        //        {
        //            Response.Write("<script>alert('Tên không được trống');</script>");
        //            return View();
        //        }

        //        var lData = (List<RelaxContactDataContract>)_cache["Contact"];
        //        var first = lData.FirstOrDefault(p => p.Id == Convert.ToInt32(collection["id"]));

        //        if (first != null)
        //        {
        //            first.Name = name;
        //            first.Address = collection["txtAddress"];
        //            first.Email = collection["txtEmail"];
        //            first.Tel = collection["txtsdt"];
        //            first.Active = collection["chkActive"].Split(',').Length > 1 ? 1 : 0;

        //            var result = _service1.UpdateContact(first);

        //            if (!result) return View();

        //            _cache["Contact"] = lData;
        //        }

        //        return RedirectToAction("Index", "Contact");
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Contact");
        //    }

        //}

        //[HttpGet]
        //public ActionResult Delete(int id)
        //{
        //    try
        //    {
        //        var lId = new List<long> { id };
        //        var ok = _service1.DeleteContact(lId);
        //        if (ok)
        //        {
        //            var lData = (List<RelaxContactDataContract>)_cache["Contact"];
        //            var first = lData.FirstOrDefault(p => p.Id == id);
        //            if (first != null)
        //            {
        //                lData.Remove(first);
        //            }

        //            _cache["Contact"] = lData;
        //        }
        //        return RedirectToAction("Index", "Contact");
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Contact");
        //    }

        //}

        //[HttpGet]
        //public ActionResult Detail(int id = 0)
        //{
        //    try
        //    {
        //        var lData = (List<RelaxContactDataContract>)_cache["Contact"];
        //        var first = lData.FirstOrDefault(p => p.Id == id);
        //        if (first == null)
        //            return HttpNotFound();

        //        return View(first);
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Contact");
        //    }
        //}

        //[HttpGet]
        //public ActionResult Isanswer(int id=0)
        //{
        //    try
        //    {
        //        var lData = (List<RelaxContactDataContract>)_cache["Contact"];
        //        var first = lData.FirstOrDefault(p => p.Id == id);
        //        if (first == null)
        //            return HttpNotFound();

        //        return View(first);
        //    }
        //    catch (Exception ex)
        //    {
        //        Response.Write("<script>alert('chi tiết lỗi:" + ex.Message + "');</script>");
        //        return RedirectToAction("Index", "Contact");
        //    }
        //}

        //[HttpPost]
        //public ActionResult Isanswer(FormCollection collection)
        //{
        //    var id = collection["id"];
        //    var title = collection["txtTitle"];
        //    var mailto = collection["txtEmailto"];
        //    var detail = collection["txtdetail"];
        //    var mailfrom = collection["txtEmailfrom"];
        //    var password = collection["txtPassword"];
        //    if (string.IsNullOrEmpty(detail) || string.IsNullOrEmpty(mailfrom) || string.IsNullOrEmpty(password))
        //    {
        //        Response.Write("<script>alert('Các trường trên không được để trống.');</script>");
        //        return View();
        //    }
        //    var ok = _utility.SendMail(mailfrom, password, mailto, detail, title);
        //    if (!ok)
        //    {
        //        Response.Write("<script>alert('Chưa gửi được mail.');</script>");
        //        return View();
        //    }

        //    var lData = (List<RelaxContactDataContract>)_cache["Contact"];
        //    var first = lData.FirstOrDefault(p => p.Id == Convert.ToInt32(id));
        //    if (first != null)
        //    {
        //        first.IsAnswer = 1;
        //        _service1.UpdateContact(first);
        //    }
        //    return RedirectToAction("Index","Contact");
        //}

    }
}
